﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Biblioteca.Utils;
using SERIX.Util;
using Biblioteca.DataBase;
using Pms.Utils;
using System.Data.Common;

namespace SERIX
{
    public partial class ConsultarQuestionario : Seguranca
    {


        private void lovSelecaoBenef(string chave, string descricao)
        {
            tbBeneficiario.Text = descricao;
            tbBeneficiario.Attributes.Add("chave", chave);
            BiblioSERIX.PreencherDdl(ref ddlPropriedade, CVinculosPropriedades.ObterPorIDT_BENEF(chave,UsuAut.Login), "NOME_PROP", "IDT_PROP");

        }

        private void lovSelecaoProp(string chave, string descricao)
        {
            tbBeneficiario.Text = descricao;
            tbBeneficiario.Attributes.Add("chave", chave);
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnLoad(e);
            Navegador1.Pesquisar += new SERIX.Controles.Navegador.PesquisarDelegate(Pesquisar);
            lovBeneficiarios.Selecao += new SERIX.Controles.lovBeneficiarios.SelecaoDelegate(lovSelecaoBenef);

            if (!String.IsNullOrEmpty(Request["idt_benef"]) && !String.IsNullOrEmpty(Request["idt_prop"]))
            {
                string _idt_benef = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_benef"]));
                string _idt_prop = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_prop"]));
                CBeneficiarios benef = CBeneficiarios.PesquisaporCodigo(_idt_benef, UsuAut.Login, false);
                tbBeneficiario.Attributes.Add("chave", _idt_benef);
                tbBeneficiario.Text = benef.Nom_benef;
                BiblioSERIX.PreencherDdl(ref ddlPropriedade, CVinculosPropriedades.ObterPorIDT_BENEF(_idt_benef, UsuAut.Login), "NOME_PROP", "IDT_PROP");
                ddlPropriedade.SelectedValue = _idt_prop;
                Pesquisar();
            }
            else
            {
                Session["RetornoQuest"] = "~/SelecionarQuestionario.aspx";
            }
            
        }

        protected void gridView_RowDataBound(object sender, GridViewRowEventArgs e)
        {

            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string IDT_QST = ((DbDataRecord)e.Row.DataItem)["IDT_QST"].ToString();
                ((HyperLink)e.Row.Cells[gridView.Columns.Count - 3].Controls[1]).NavigateUrl = "PreencherQuestionario.aspx?op=C&idt_qst=" + Server.UrlEncode(Criptografia.Criptografar(IDT_QST));
                ((HyperLink)e.Row.Cells[gridView.Columns.Count - 2].Controls[1]).NavigateUrl = "PreencherQuestionario.aspx?OP=U&idt_qst=" + Server.UrlEncode(Criptografia.Criptografar(IDT_QST));
                ((HyperLink)e.Row.Cells[gridView.Columns.Count - 1].Controls[1]).NavigateUrl = "QuestionariosManut.aspx?OP=DATANASC_CONJUGE&idt_qst=" + Server.UrlEncode(Criptografia.Criptografar(IDT_QST)) +
                                                                                               "&origem=S&idt_benef=" + Server.UrlEncode(Criptografia.Criptografar(tbBeneficiario.Attributes["chave"])) +
                                                                                               "&idt_prop=" + Server.UrlEncode(Criptografia.Criptografar(ddlPropriedade.SelectedValue));
                //Segurança
                ((HyperLink)e.Row.Cells[gridView.Columns.Count - 3].Controls[1]).Enabled = !_permissao.Equals(Constantes.PERM_NEGADA);
                ((HyperLink)e.Row.Cells[gridView.Columns.Count - 2].Controls[1]).Enabled = _permissao.Equals(Constantes.PERM_MANUTENCAO);
                ((HyperLink)e.Row.Cells[gridView.Columns.Count - 1].Controls[1]).Enabled = _permissao.Equals(Constantes.PERM_MANUTENCAO);
            }
            else
            {
                Session["RetornoQuest"] = "~/SelecionarQuestionario.aspx?idt_benef=" + Server.UrlEncode(Criptografia.Criptografar(tbBeneficiario.Attributes["chave"])) +
                                          "&idt_prop=" + Server.UrlEncode(Criptografia.Criptografar(ddlPropriedade.SelectedValue));
            }
        }

      
        protected void Pesquisar()
        {
            QueryPaginada qy = null;
            try
            {
                //Se o filtro nao estiver vazio 
                if (!String.IsNullOrEmpty(tbBeneficiario.Attributes["chave"]) && !String.IsNullOrEmpty(ddlPropriedade.SelectedValue) )
                {
                    string SQL = @" select q.IDT_QST, t.DSC_TIQ, to_char(q.DAT_QST,'dd/mm/yyyy') DAT_QST
                                      from serix.srx_questionarios q
                                      join serix.srx_tipos_questionarios t on (q.idt_tiq = t.idt_tiq)
                                     where idt_benef = :idt_benef
                                       and idt_prop = :idt_prop 
                                     order by DAT_QST";
                    try
                    {
                        qy = new QueryPaginada(BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, UsuAut.Login, BiblioPMS.Demo), SQL, BiblioSERIX.tamPag);
                        qy.AdicionarParametro("idt_benef", DbType.String, tbBeneficiario.Attributes["chave"]);
                        qy.AdicionarParametro("idt_prop", DbType.String, ddlPropriedade.SelectedValue);
                        gridView.DataSource = qy.Executar(Convert.ToInt32(Session["PagAtual"]));
                        gridView.DataBind();
                        Navegador1.CarregueBotoes(qy.QtdLinhas());
                        gridView.Visible = true;
                        Navegador1.Visible = true;

                    }
                    catch
                    {
                        if (qy.EstadoConexao() == ConnectionState.Open)
                            qy.FecharConexao();
                    }
                    finally
                    {
                        if (qy.EstadoConexao() == ConnectionState.Open)
                            qy.FecharConexao();
                    }
                }
                else
                {
                    gridView.Visible = false;
                    Navegador1.Visible = false;
                }
            }
            catch
            //Em caso de erro, mostra todos as unidades
            {
                if (qy.EstadoConexao() == ConnectionState.Open)
                    qy.FecharConexao();
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Session["PagAtual"] = 1;
            Pesquisar();
        }
    }
}
